__all__ = ["Skill", "Ultimate"]

class Skill(object):
    """
    This object's purpose is to hold all information about a skill and provide
    functionality to the skill.
    """
    def __init__(self, name, maxLevel, levelInterval, description):
        """
        Default constructor, assign all default attributes.

        @param string name The name of the skill
        @param integer minLevel The minimum level required to purchase the skill
        @param integer maxLevel The maximum level this skill can go to
        @param string description A short description explaining the skill.
        """
        self.name = name
        self.maxLevel = maxLevel
        self.levelInterval = levelInterval
        self.description = description
        
class Ultimate(Skill):
    """
    This object holds all information about a race's ultimate. It is a subclass
    of skill as it holds very similar properties to a skill.
    """
    def __init__(self, name, minLevel, maxLevel, levelInterval, description):
        """
        Default constructor, assign all default attributes.

        @param string name The name of the skill
        @param integer minLevel The minimum level required to purchase the skill
        @param integer maxLevel The maximum level this skill can go to
        @param integer levelInterval The intervals between possible purchases
        @param string description A short description explaining the ultimate.
        """
        self.minLevel = minLevel
        Skill.__init__(self, name, maxLevel, levelInterval, description)